Fix documentation, requirements, and subsystem test suite issues identified in formal review#44
Conversation
…iles Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot There don't appear to be subsystem test suites. Subsystems should have their own test suites and the requirements are supposed to link to them. Subsystem reviews must consist of the subsystem-requirements, subsystem-design, and subsystem-test-suite. Unit reviews must consist of the unit-requirements, unit-design, unit-code, and unit-test-suite. Subsystem requirements should 'children' requirement-link to the relevant unit requirements. |
- Add CliTests.cs: subsystem integration tests for CLI (Context + Program) - Add ConfigurationTests.cs: subsystem integration tests for Configuration - Add IndexingTests.cs: subsystem integration tests for Indexing - Add SelfTestTests.cs: subsystem integration tests for SelfTest - Update cli.yaml: add children links and new subsystem test references - Update configuration.yaml: add children links and new subsystem test references - Update indexing.yaml: add children links and new subsystem test references - Update self-test.yaml: add children links and new subsystem test references - Update .reviewmark.yaml: update subsystem review-sets to include new test files Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Done in commit Subsystem test suites created (one per subsystem):
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot Please fix the issues reported by running the lint scripts |
There was a problem hiding this comment.
Pull request overview
This pull request aligns ReviewMark’s formal review artifacts (design docs, ReqStream requirements, and evidence/test suites) with the actual implementation and test coverage, and updates subsystem review-sets to follow the intended 3-artifact pattern (requirements + design + subsystem test suite).
Changes:
- Correct and extend design documentation for evidence sources, fingerprinting, ReviewIndex APIs, and self-test exit code behavior.
- Improve requirements traceability by adding missing test mappings and introducing
childrenlinks for subsystem-to-unit hierarchy. - Add subsystem-level integration test suites for CLI, Configuration, Indexing, and SelfTest; update
.reviewmark.yamlsubsystem review-sets accordingly.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.ReviewMark.Tests/Cli/CliTests.cs | Adds CLI subsystem integration tests for version/help/validate/silent behaviors. |
| test/DemaConsulting.ReviewMark.Tests/Configuration/ConfigurationTests.cs | Adds Configuration subsystem integration tests spanning config loading, fingerprinting, and plan generation. |
| test/DemaConsulting.ReviewMark.Tests/Indexing/IndexingTests.cs | Adds Indexing subsystem integration tests combining PathHelpers + ReviewIndex load/save behaviors. |
| test/DemaConsulting.ReviewMark.Tests/SelfTest/SelfTestTests.cs | Adds SelfTest subsystem integration tests for validation exit code and results file generation. |
| docs/reqstream/review-mark/cli/cli.yaml | Adds children links and maps new CLI subsystem tests into requirements. |
| docs/reqstream/review-mark/configuration/configuration.yaml | Adds children links and maps new Configuration subsystem tests into requirements. |
| docs/reqstream/review-mark/configuration/glob-matcher.yaml | Documents additional GlobMatcher unit tests previously missing from requirements. |
| docs/reqstream/review-mark/configuration/review-mark-configuration.yaml | Removes duplicate test mapping entry. |
| docs/reqstream/review-mark/indexing/indexing.yaml | Adds missing test mappings and children links for subsystem-to-unit traceability. |
| docs/reqstream/review-mark/indexing/path-helpers.yaml | Documents additional PathHelpers unit tests previously missing from requirements. |
| docs/reqstream/review-mark/self-test/self-test.yaml | Adds subsystem test mappings and children links pointing to Validation unit requirements. |
| docs/design/review-mark/cli/context.md | Corrects DefinitionFile type documentation to string?. |
| docs/design/review-mark/configuration/review-mark-configuration.md | Documents evidence-source none and clarifies fingerprinting hash normalization/sorting. |
| docs/design/review-mark/indexing/path-helpers.md | Normalizes document title to match unit doc naming convention. |
| docs/design/review-mark/indexing/review-index.md | Replaces outdated GetStatus() docs with the actual query/persistence APIs. |
| docs/design/review-mark/self-test/validation.md | Corrects description of non-zero exit code mechanism via Context.WriteError(). |
| .reviewmark.yaml | Updates subsystem review-sets to include subsystem requirements + subsystem design + subsystem test suite. |
| .cspell.yaml | Adds selftest to allowlist for spell checking. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/demaconsulting/ReviewMark/sessions/4e67c1ba-0bd1-4537-b878-2b85e42f4d22 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Fixed in commit Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Formal reviews were performed on all 14 review-sets defined in
.reviewmark.yaml. The following issues were identified and fixed.Documentation fixes (
docs/design/)cli/context.mdDefinitionFiletype fromstringtostring?configuration/review-mark-configuration.mdnoneevidence-source type documentation; clarify fingerprint algorithm converts hashes to lowercase hex strings before sortingindexing/review-index.mdGetStatus()section with documentation for the three actual query methods (GetEvidence,HasId,GetAllForId) and bothSave()overloadsself-test/validation.mdContext.WriteError()which causesExitCodeto return non-zero (rather than directly assigningExitCode)indexing/path-helpers.md# PathHelpers(consistent with all other unit design documents)Requirements fixes (
docs/reqstream/)configuration/review-mark-configuration.yamlReviewMarkConfiguration_Load_NonExistentFile_ReturnsNullConfigWithErrorIssueconfiguration/glob-matcher.yamlGlobMatcher_GetMatchingFiles_EmptyPatterns_ReturnsEmptyList,GlobMatcher_GetMatchingFiles_MultipleIncludePatterns_ReturnsAllMatching)indexing/path-helpers.yamlPathHelpers_SafePathCombine_DoubleDotsInMiddle_ThrowsArgumentException,PathHelpers_SafePathCombine_CurrentDirectoryReference_CombinesCorrectly,PathHelpers_SafePathCombine_EmptyRelativePath_ReturnsBasePath)indexing/indexing.yamlReviewMark-Indexing-ScanPdfEvidenceSubsystem test suites (new)
Four new subsystem integration test suite files have been added — one per subsystem — so that subsystem review-sets contain subsystem-level evidence rather than unit-level test files:
test/.../Cli/CliTests.csCli_VersionFlag_OutputsVersionOnly,Cli_HelpFlag_OutputsUsageInformation,Cli_ValidateFlag_RunsValidation,Cli_SilentFlag_SuppressesOutputtest/.../Configuration/ConfigurationTests.csConfiguration_LoadConfig_ResolvesNeedsReviewFiles,Configuration_LoadConfig_FingerprintReflectsFileContent,Configuration_LoadConfig_PlanGenerationSucceedstest/.../Indexing/IndexingTests.csIndexing_SafePathCombine_WithIndexPath_LoadsIndex,Indexing_ReviewIndex_SaveAndLoad_RoundTriptest/.../SelfTest/SelfTestTests.csSelfTest_Run_AllTestsPass_ExitCodeIsZero,SelfTest_Run_GeneratesResultsFileSubsystem requirements —
childrenlinks and.reviewmark.yamlreview-setsAll subsystem requirements (
cli.yaml,configuration.yaml,indexing.yaml,self-test.yaml) have been updated withchildrenlinks pointing down to the relevant unit requirement IDs, enabling transitive test coverage traceability.The four subsystem review-sets in
.reviewmark.yamlhave been updated to follow the 3-artifact pattern — subsystem-requirements + subsystem-design + subsystem-test-suite — replacing the previous mix of unit design files and unit test files.Pull Request
Description
Addresses documentation, requirements, and structural issues identified during formal reviews of all 14 review-sets in
.reviewmark.yaml. Changes cover design documentation corrections, requirements traceability improvements, new subsystem test suites, and subsystem requirements hierarchy (childrenlinks). A markdown line-length lint violation introduced inreview-mark-configuration.mdhas also been corrected.Type of Change
Related Issues
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.ReviewMark --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
cspell "**/*.{md,cs}"markdownlint "**/*.md"yamllint .Testing
Documentation
Additional Notes
All 175 tests pass across .NET 8, 9, and 10. Build is clean (0 warnings). All lint checks pass (yamllint, cspell, markdownlint-cli2, dotnet format).
dotnet reqstream --lintreports no issues.